package meiyunting.shiwuzhaoling.repository;

import meiyunting.shiwuzhaoling.model.Item;
import meiyunting.shiwuzhaoling.model.ItemStatus;
import meiyunting.shiwuzhaoling.model.ItemType;
import meiyunting.shiwuzhaoling.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 失物招领信息的数据访问层
 */
@Repository
public interface ItemRepository extends JpaRepository<Item, Long> {

    /**
     * 根据状态查询
     */
    List<Item> findByStatus(ItemStatus status);

    /**
     * 根据类型查询
     */
    List<Item> findByType(ItemType type);

    /**
     * 根据状态和类型查询
     */
    List<Item> findByStatusAndType(ItemStatus status, ItemType type);

    /**
     * 根据关键字在标题或描述中查询
     */
    List<Item> findByTitleContainingOrDescriptionContaining(String titleKeyword, String descriptionKeyword);

    /**
     * 根据用户查询
     */
    List<Item> findByUser(User user);
    
    /**
     * 根据认领用户查询
     */
    List<Item> findByClaimedBy(User claimedBy);
} 